home *** CD-ROM | disk | FTP | other *** search
/ Palm Utilities / Palm_Utilities_CD-ROM_2001_2001.iso / files / utils sync / ClipSync 1.0 / ClipSync1_0Eval.exe / Readme.Txt < prev   
Encoding:
Text File  |  2000-07-07  |  4.4 KB  |  156 lines

  1. #include <PalmOS.h>
  2. #include <PalmCompatibility.h>
  3.  
  4. #define Form1004    1004
  5. #define Button1005  1005
  6. #define TEXTMODE    0
  7. #define BITMAPMODE  1
  8. static int StartApplication(void);
  9. static void EventLoop(void);
  10. static void StopApplication(void);
  11. static Boolean frmMainEventH(EventPtr event);
  12. static int clipMode=-1;
  13. //---------------------------------------------------------------------------
  14. DWord  PilotMain (Word cmd, Ptr cmdPBP, Word launchFlags)
  15. {
  16. int error;
  17.  
  18. if (cmd == sysAppLaunchCmdNormalLaunch)
  19.     {
  20.     error = StartApplication();   // Application start code
  21.     if (error)
  22.         return error;
  23.     EventLoop();                    // Event loop
  24.     StopApplication ();           // Application stop code
  25.     }
  26.     return 0;
  27. }
  28.  
  29. //---------------------------------------------------------------------------
  30. static int StartApplication(void)
  31. {
  32. FrmGotoForm(Form1004);
  33. }
  34.  
  35. //---------------------------------------------------------------------------
  36. static void EventLoop(void)
  37. {
  38. short err;
  39. int formID;
  40. FormPtr form;
  41. EventType event;
  42.  
  43. do
  44.     {
  45.     EvtGetEvent(&event, 200);
  46.     if (SysHandleEvent(&event))
  47.         continue;
  48.     if (MenuHandleEvent((void *)0, &event, &err))
  49.         continue;
  50.     if (event.eType == frmLoadEvent)
  51.         {
  52.         formID = event.data.frmLoad.formID;
  53.         form = FrmInitForm(formID);
  54.         FrmSetActiveForm(form);
  55.         switch (formID)
  56.             {
  57.             case Form1004:
  58.                 FrmSetEventHandler(form, (FormEventHandlerPtr) frmMainEventH);
  59.                 SwitchClipMode(TEXTMODE);
  60.                 break;
  61.             }
  62.         }
  63.     FrmDispatchEvent(&event);
  64.     }
  65.     while(event.eType != appStopEvent);
  66. }
  67.  
  68. //---------------------------------------------------------------------------
  69. static void StopApplication(void)
  70. {
  71. //Insert stop code here
  72. FrmCloseAllForms();
  73. }
  74.  
  75. //---------------------------------------------------------------------------
  76. static Boolean frmMainEventH(EventPtr event)
  77. {
  78. FormPtr   form;
  79. int       handled = 0;
  80.  
  81. switch (event->eType)
  82.     {
  83.     case frmOpenEvent:
  84.         form = FrmGetActiveForm();
  85.         FrmDrawForm(form);
  86.         handled = 1;
  87.         break;
  88.     case popSelectEvent:
  89.         SwitchClipMode(event->data.popSelect.selection);
  90.         break;                
  91.     case ctlSelectEvent:
  92.         if (event->data.ctlEnter.controlID == 1016 ) {
  93.             FieldType *fptr=0;
  94.             form=FrmGetActiveForm();
  95.             fptr=FrmGetObjectPtr(form,FrmGetObjectIndex(form,1012));
  96.             ClipboardAddItem(clipboardText,FldGetTextPtr(fptr),FldGetTextLength(fptr)-1);
  97.             handled = 1;
  98.             }
  99.         else
  100.         if (event->data.ctlEnter.controlID == 1005 ) {
  101.             FieldType *fptr=0;
  102.             ClipboardAddItem(clipboardText,"\0",1);
  103.             form = FrmGetActiveForm();
  104.             fptr=FrmGetObjectPtr(form,FrmGetObjectIndex(form,1012));
  105.             FldDelete(fptr,0,FldGetTextLength(fptr));    
  106.             handled = 1;
  107.             }
  108.         else
  109.         if (event->data.ctlEnter.controlID == 1031 ) {
  110.             }
  111.         break;
  112.     case nilEvent:
  113.         handled = 1;
  114.         break;
  115.     }
  116. return handled;
  117. }
  118.  
  119. int SwitchClipMode(int newMode) {
  120.     if(newMode==clipMode)
  121.         return 0;
  122.     clipMode=newMode;
  123.     switch(clipMode) {
  124.         case TEXTMODE: {
  125.             UInt16 len=0;         
  126.             MemHandle   mh=0;
  127.             FieldType *fptr=0;
  128.             FormPtr form=FrmGetActiveForm();
  129.             fptr=FrmGetObjectPtr(form,FrmGetObjectIndex(form,1012));
  130.             FldSetUsable(fptr,1);
  131.             mh=ClipboardGetItem(clipboardText,&len);
  132.             if(len) {
  133.                 FldDelete(fptr,0,FldGetTextLength(fptr));    
  134.                 FldPaste(fptr);
  135.                 }
  136.             break;
  137.             }
  138.         case BITMAPMODE: {
  139.             DmOpenRef or=0;
  140.             MemHandle mh=0;
  141.             MemPtr    mp=0;
  142.             LocalID   id;
  143.             FormPtr form=FrmGetActiveForm();
  144.             FieldType *fptr=FrmGetObjectPtr(form,FrmGetObjectIndex(form,1012));
  145.             id=DmFindDatabase(0,"ClipSyncDB");
  146.             or=DmOpenDatabase(0,id,dmModeReadOnly);
  147.             mh=DmGetRecord(or,0);    
  148.             mp=MemHandleLock(mh);    
  149.             ClipboardAddItem(clipboardText,mp,StrLen(mp));
  150.             DmCloseDatabase(or);
  151.             SwitchClipMode(TEXTMODE);
  152.             break;
  153.             }
  154.         }       
  155.     return 0;
  156.     }